package com.crm.common.crm.entity.VO;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 仪表盘vo
 *
 * @author litianyi
 */
@ApiModel("仪表盘")
@Data
public class SalesDepartmentDashBoardVO {

    @ApiModelProperty("客户数量")
    private CustomerNum customerNum;

    @ApiModelProperty("销售加微信数")
    private SalesAddWechatData salesAddWechatData;

    @ApiModelProperty("进群客户数")
    private CustomerJoinGroupData customerJoinGroupData;

    @ApiModelProperty("销售客户成交数")
    private DealSuccessfulData dealSuccessfulData;

    @ApiModelProperty("合同金额")
    private ContractAmountData contractAmountData;

    @ApiModelProperty("回款金额")
    private PayBackData payBackData;

    @ApiModelProperty("合同金额-未回款")
    private ContractNotReceivablesAmountData contractNotReceivablesAmountData;

    @Data
    @ApiModel("客户数量")
    public static class CustomerNum{
        @ApiModelProperty("当前客户数")
        private Integer data;

        @ApiModelProperty("环比")
        private String mom;

        @ApiModelProperty("成交数")
        private Integer dealCustomer = 0;

        @ApiModelProperty("未成交数")
        private Integer notDealCustomer = 0;
    }

    @Data
    @ApiModel("销售加微信数")
    public static class SalesAddWechatData {

        @ApiModelProperty("销售加微信数")
        private Integer data;

        @ApiModelProperty("转化率")
        private String rate;

        @ApiModelProperty("环比")
        private double mom;

        @ApiModelProperty("销售数据名称")
        private String label;

        @ApiModelProperty("销售标题名称")
        private String title;

        @ApiModelProperty("类型")
        private String type;

        @ApiModelProperty("plaTip: leadsTip")
        private String plaTip;

        @ApiModelProperty("labelValue")
        private Integer labelValue;
    }

    @Data
    @ApiModel("进群客户数")
    public static class CustomerJoinGroupData {

        @ApiModelProperty("进群客户数")
        private Integer data;

        @ApiModelProperty("转化率")
        private String rate;

        @ApiModelProperty("环比")
        private double mom;

        @ApiModelProperty("销售数据名称")
        private String label;

        @ApiModelProperty("销售标题名称")
        private String title;

        @ApiModelProperty("类型")
        private String type;

        @ApiModelProperty("plaTip: leadsTip")
        private String plaTip;

        @ApiModelProperty("labelValue")
        private Integer labelValue;
    }

    @Data
    @ApiModel("销售客户成交数")
    public static class DealSuccessfulData {

        @ApiModelProperty("销售客户成交数")
        private Integer data;

        @ApiModelProperty("转化率")
        private String rate;

        @ApiModelProperty("环比")
        private double mom;

        @ApiModelProperty("销售数据名称")
        private String label;

        @ApiModelProperty("销售标题名称")
        private String title;

        @ApiModelProperty("类型")
        private String type;

        @ApiModelProperty("plaTip: leadsTip")
        private String plaTip;

        @ApiModelProperty("labelValue")
        private Integer labelValue;
    }

    @Data
    @ApiModel("合同金额")
    public static class ContractAmountData {

        @ApiModelProperty("合同金额")
        private BigDecimal data;

        @ApiModelProperty("转化率")
        private String rate;

        @ApiModelProperty("环比")
        private double mom;

        @ApiModelProperty("销售数据名称")
        private String label;

        @ApiModelProperty("销售标题名称")
        private String title;

        @ApiModelProperty("类型")
        private String type;

        @ApiModelProperty("plaTip: leadsTip")
        private String plaTip;

        @ApiModelProperty("labelValue")
        private Integer labelValue;
    }

    @Data
    @ApiModel("回款金额")
    public static class PayBackData {

        @ApiModelProperty("回款金额")
        private BigDecimal data;

        @ApiModelProperty("转化率")
        private String rate;

        @ApiModelProperty("环比")
        private double mom;

        @ApiModelProperty("销售数据名称")
        private String label;

        @ApiModelProperty("销售标题名称")
        private String title;

        @ApiModelProperty("类型")
        private String type;

        @ApiModelProperty("plaTip: leadsTip")
        private String plaTip;

        @ApiModelProperty("labelValue")
        private Integer labelValue;
    }

    @Data
    @ApiModel("合同金额-未回款")
    public static class ContractNotReceivablesAmountData {

        @ApiModelProperty("合同金额-未回款金额")
        private BigDecimal data;

        @ApiModelProperty("转化率")
        private String rate;

        @ApiModelProperty("环比")
        private String mom;

        @ApiModelProperty("销售数据名称")
        private String label;

        @ApiModelProperty("销售标题名称")
        private String title;

        @ApiModelProperty("类型")
        private String type;

        @ApiModelProperty("plaTip: leadsTip")
        private String plaTip;

        @ApiModelProperty("labelValue")
        private Integer labelValue;
    }
}
